package com.example.blog.utils;

import org.springframework.util.DigestUtils;

import java.util.UUID;

public class SecurityUtil {
    // 加密
    public static String encrypt(String userPassword){
        // 1. 生成随机盐值
        String salt = UUID.randomUUID().toString().replace("-", "");
        // 2. 生成密文 - MD5(userPassword + salt)
        String encryptionValue = DigestUtils.md5DigestAsHex((userPassword + salt).getBytes());
        // 3. 返回数据库中存储的数据
        return encryptionValue + salt;
    }

    // 解密
    public static Boolean verify(String userInput, String dataSourcePassword){
        // 1. 拿到盐值
        String salt = dataSourcePassword.substring(32, 64);
        // 2. 生成密文
        String encryptionValue = DigestUtils.md5DigestAsHex((userInput + salt).getBytes());
        // 3. 和数据库中的信息做对比
        return (encryptionValue + salt).equals(dataSourcePassword);
    }
}
